﻿using System;
using System.Collections.Generic;
using System.Linq;
using Joel.Vishnu.Presentacion.Vistas;
using Joel.Vishnu.Presentacion;
using Joel.Vishnu.Modelo.Entidades;

namespace Joel.Vishnu.Consola
{
    public class Generos : Base, IGeneros
    {
        #region Constructores

        public Generos()
            : base()
        {
            presentador = new GenerosPresentador(this);
            listaGeneros = new List<Genero>();
        }

        #endregion

        #region Atributos

        private GenerosPresentador presentador;
        private List<Genero> listaGeneros;

        #endregion

        #region Propiedades

        public List<Genero> ListaGeneros
        {
            set { listaGeneros = value; }
        }

        #endregion

        #region Metodos

        public void Listado()
        {
            try
            {
                Console.Clear();
                Titulo("********** Géneros **********");
                MostrarGeneros();
                Console.ReadKey();
            }
            catch (Exception ex)
            {
                MensajeError(ex.Message);
            }
        }

        public void MostrarGeneros()
        {
            MensajeInformativo(String.Format("{0} {1}",
                ArmarLineaInversa("Id", 3),
                ArmarLinea("Nombre", 10)));
            presentador.ActualizarGeneros();
            foreach (var item in listaGeneros)
                Console.WriteLine(String.Format("{0} {1}",
                ArmarLineaInversa(Convert.ToString(item.Id), 3),
                ArmarLinea(item.Nombre, 10)));
        }

        #endregion
    }
}
